package com.itgungnir.designpattern.singleton.lazy;

public class LazySingleton {
	// 声明变量，但不初始化
	private static LazySingleton instance;

	// 私有化构造方法，避免外界直接访问
	private LazySingleton() {
		System.out.println("我是懒汉式单例类的对象，我是唯一的！");
	}

	// 公共的静态方法，用于外界调用该方法来创建唯一的对象
	public static LazySingleton getInstance() {
		// 在调用对象的时候判断对象是否存在，如果存在则直接使用，否则才创建对象
		if (instance == null) {
			synchronized (LazySingleton.class) {
				if (instance == null) {
					instance = new LazySingleton();
				}
			}
		}
		return instance;
	}

	public void introduce() {
		System.out.println("我是introduce()方法，我被调用了！" + Thread.currentThread().getName());
	}
}